package kr.saeildamil.androidstudy.ch09;

import kr.saeildamil.androiddforstudy.R;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Button;

public class MenuCheck extends Activity {

	Button mBtn;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.ch09_menucheck);
		mBtn = (Button) findViewById(R.id.ch09_menucheck_btn);
	}
	
	@Override
	public boolean onPrepareOptionsMenu(Menu menu) {
		super.onPrepareOptionsMenu(menu);
		if(mBtn.getTextSize() == 40){
			menu.findItem(R.id.bigfont).setChecked(true);
		}else{
			menu.findItem(R.id.bigfont).setChecked(false);
		}
		
		int color = mBtn.getTextColors().getDefaultColor();
		// 컬러 불러오기!
		
		if(color == Color.RED){
			menu.findItem(R.id.red).setChecked(true);
			// 메뉴에 있는 red 항목을 항상 체크되어있도록 함;
		}
		if(color == Color.GREEN){
			menu.findItem(R.id.green).setChecked(true);
		}if(color == Color.BLUE){
			menu.findItem(R.id.blue).setChecked(true);
		}
		return true;
		
		// 글자 크기 메뉴 실행 후에, 항상 그 메뉴가 checked 상태로 있도록...
		// 여기서 설정을 해 주지 않으면 green 이나 blue 로 바꿔 준 후에도 계속 red 를 체크하게 됨;
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);

		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.menucheck, menu);

		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		super.onOptionsItemSelected(item);
		switch (item.getItemId()) {
		case R.id.bigfont:
			if (item.isChecked()) {	// 그전에 메뉴 체크가 되어 있다면... 재 클릭 시에 20px로 원상복귀;
				mBtn.setTextSize(TypedValue.COMPLEX_UNIT_PX, 20);
			}else{	// 메뉴가 체크되어있지 않다면, 체크 시에 40px이 된다;
				mBtn.setTextSize(TypedValue.COMPLEX_UNIT_PX, 40);
			}
			return true;
		case R.id.red:
			mBtn.setTextColor(Color.RED);
			return true;
		case R.id.green:
			mBtn.setTextColor(Color.GREEN);
			return true;
		case R.id.blue:
			mBtn.setTextColor(Color.BLUE);
			return true;
		}
		return false;
	}

}
